Veriied Proofs concerning Functional Programs
نویسنده
چکیده
In this paper the development of automatically veriied proofs for functional programs is examined. This examination is made on the basis of a small functional program written in the functional language clean. For this program a proof is constructed in the proof system coq. This proof is automatically veriied by coq. The functional program presented contains two function-constructors for the class of equality-functions. These function-constructors de-ne equality-functions on composed types from equality-functions on basic types. An equality-function for typèList of A' can be composed out of an equality-function for typèA', and one for typèPair of A and B' can be composed out of ones for typèA' and typèB'. In the proof it is shown that these function-constructors preserve equivalence-relations. This means that if the given equality-functions on the basic types are equivalence-relations, then also the constructed equality-function on the composed type must be an equivalence-relation. First the proof will be given informally. Then this informal proof is transformed in two steps to a formal proof in the proof system coq. The correctness of the formal proof is automatically checked by coq.
منابع مشابه
System Description: IVY
IVY is a veriied theorem prover for rst-order logic with equality. It is coded in ACL2, and it makes calls to the theorem prover Otter to search for proofs and to the program MACE to search for coun-termodels. Veriications of Otter and MACE are not practical because they are coded in C. Instead, Otter and MACE give detailed proofs and models that are checked by veriied ACL2 programs. In additio...
متن کاملAutomating Changes of Data Type in Functional Programs
In this paper I present an automatic technique for transforming a program by changing the data types in that program to ones which are more appropriate for the task. Programs are synthesised by proving modiied synthesis theorems in the proofs-as-programs paradigm. The transformation can be veriied in the logic of type theory. Transformations are motivated by the presence of subexpressions in th...
متن کاملInheritance of Proofs
The Curry-Howard isomorphism, a fundamental property shared by many type theories, establishes a direct correspondence between programs and proofs. This suggests that the same structuring principles that ease programming be used to simplify proving as well. To exploit object-oriented structuring mechanisms for veriication, we extend the object-model of Pierce and Turner, based on the higher-ord...
متن کاملProgrammation fonctionnelle certifiée : L'extraction de programmes dans l'assistant Coq. (Certified functional programming : Program extraction within Coq proof assistant)
This work concerns the generation of programs which are certified to be correct byconstruction. These programs are obtained by extracting relevant information from construc-tive proofs made with the Coq proof assistant.Such a translation, named “extraction”, of constructive proofs into functional programsis not new, and corresponds to an isomorphism known as Curry-Howard’s. ...
متن کامل{78 () the Vlisp Veriied Scheme System *
The vlisp project has produced a rigorously veriied compiler from Scheme to byte codes, and a veriied interpreter for the resulting byte codes. The oocial denotational semantics for Scheme provides the main criterion of correctness. The Wand-Clinger technique was used to prove correctness of the primary compiler step. Then a state machine operational semantics is proved to be faithful to the de...
متن کامل